/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 *                                                                  *
 *        *************************************************         *
 *        *©2021-2027 HT Corporation All rights reserved *          *
 *        *************************************************         *
 *                                                                  *
 * FileName    : h_sys.h                                            *
 *                                                                  *
 * Author      : linus                                              *
 *                                                                  *
 * Email       : luoyaojun@haitutech.com                            *
 *                                                                  *
 * Date        : 2022-8-9                                           *
 *                                                                  *
 * Description :                                                    *
 *                                                                  *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#ifndef __H_SYS_H
#define __H_SYS_H

#include "h_register.h"

#define HT_MPP_HANDLE_SYS (struct ht_sys *)HT_MPP_HANDLE(HT_ID_SYS)

struct ht_sys_ops
{
    HT_S32 (*ht_sys_init)();
    HT_S32 (*ht_sys_exit)();

    HT_S32(*ht_sys_bind)
    (HT_MOD_ID src_mid, HT_U32 src_dev, HT_U32 src_chn, HT_MOD_ID dst_mid, HT_U32 dst_dev, HT_U32 dst_chn);
    HT_S32(*ht_sys_unbind)
    (HT_MOD_ID src_mid, HT_U32 src_dev, HT_U32 src_chn, HT_MOD_ID dst_mid, HT_U32 dst_dev, HT_U32 dst_chn);
};

struct ht_sys
{

    const char *platform_name;

    struct ht_sys_ops *ops;
};

HT_S32 ht_sys_module_register(struct ht_sys *psys);
#endif
